It has traditionally been very difficult to get access to media streams in a PBX environment. Even if an application has gained access to a media stream using traditional means, the actions that can be taken on the media stream are limited to existing services provided by the PBX.
One way that has been used to address this issue is to use a control API that allows applications to register a virtual station and then conference the virtual station into an existing call. The downside of this approach is that the application is limited to actions that can be performed via a station interface.
Another alternative is to split a call to a PBX into two halves so the media between the two call halves can be managed. The downside with this approach is that the half call model breaks many existing PBX features. In addition, when a call is split into two halves, twice as many PBX resources are required for each call and additional call latency is introduced.